/**
 * Created by mac on 12-1-4.
 * 处理瀑布流的后端部分
 */
(function( $ ) {

    var waterFallServers = {

        //数据浅拷贝
        'extend': function( defs, settings ) {
            for ( var attr in defs ) {
                if ( typeof settings[attr] != 'undefined' ) {
                    defs[attr] = settings[attr];
                }
            }
        },


        /**
         * common() 公共方法
         * @param settings
         * settings.type 默认值'POST', 请求的类型
         * settings.dataType 数据类型
         * settings.url 请求数据的地址
         * settings.data 要发送的数据
         * settings.callBack 请求之后的回调函数
         * 回调函数参数 msg 的数据格式如下：
         * {
         *      'data': msg, //成功提交之后返回的数据
         *      'status': 1, //0代表提交失败，1代表提交成功
         *      'error': '失败信息' //提交失败的信息提示
        }
         */
        'common': function( settings ) {
            //设置默认值
            var defs = {
                'type': 'POST',
                'dataType': 'json',
                'url': '',
                'data': {},
                'callBack': function(){}
            };

            //覆盖数据
            this.extend(defs, settings);

            //经过ajax处理表单数据之后返回结果
            $.ajax({
                type: defs.type,
                dataType: defs.dataType,
                url: defs.url,
                data: defs.data,
                success: function (msg) {
                    defs.callBack && defs.callBack(msg);
                },
                error: function(msg) {
                    defs.callBack && defs.callBack({'error':true, 'description':'服务器异常', 'data':msg});
                }
            });
        },


        //获取瀑布流数据 返回json
        'getWaterFallDatas': function( settings, callBack ) {
            this.common({
                'type': 'POST',
                'dataType': 'json',
                'url': '/hot/findHot',
                'data': {
                    //需要抓取数据的url
                    'pageStep':settings.pageStep,
                    'count':settings.count
                },
                'callBack': callBack
            });

            ////////////////////////////以下是前端测试效果用////////////////////////////
            //期望返回的json数据格式如下
            /*
            var data = {
                "code": 200,
                "description": "sucess",
                "detail": {
                    "totalSize": "5",
                    "hotBeans": [
                        {
                            "time": "7分钟前",
                            "userAvatar": "http://static.sporttery.cn/images/130517/18-13051G32G3-52.jpg",
                            "userName": "菠萝也结衣1",
                            "userUrl": "http://www.jd.com/",
                            "url": "http://www.zhihu.com/question/22334642#answer-3639267",
                            "typeDescription": "# 购买渠道",
                            "comment": "在我的想象中，GR2的对焦系统如果能达到A6000的水平，加个五轴防抖，加个翻转屏，简直是完美的，然而，这一次GR2的升级却选择了挤牙膏，这让人无比的绝望，与其花费五千多元买一个与自己拥有的相机无异的“新”相机，不如顺势趁着老α7降价的大气候，体验全幅吧。",
                            "prodPicUrl": "http://ecx.images-amazon.com/images/I/81aFIfmjHUL._SL1500_.jpg",
                            "prodTitle": "Motorola Moto 360 - Black Leather Smart Watch",
                            "prodUrl": "http://www.bejson.com/",
                            "interactive": "324次互动",
                            "participate": "53人参与"
                        },
                        {
                            "time": "7分钟前",
                            "userAvatar": "http://static.sporttery.cn/images/130517/18-13051G32G3-52.jpg",
                            "userName": "菠萝也结衣2",
                            "userUrl": "http://www.jd.com/",
                            "url": "http://www.zhihu.com/question/22334642#answer-3639267",
                            "typeDescription": "# 讨论",
                            "comment": "在我的想象中，GR2的对焦系统如果能达到A6000的水平，加个五轴防抖，加个翻转屏，简直是完美的，然而，这一次GR2的升级却选择了挤牙膏，这让人无比的绝望，与其花费五千多元买一个与自己拥有的相机无异的“新”相机，不如顺势趁着老α7降价的大气候，体验全幅吧。",
                            "prodPicUrl": "http://ecx.images-amazon.com/images/I/81aFIfmjHUL._SL1500_.jpg",
                            "prodTitle": "Motorola Moto 360 - Black Leather Smart Watch",
                            "prodUrl": "http://www.bejson.com/",
                            "interactive": "324次互动",
                            "participate": "53人参与"
                        },
                        {
                            "time": "7分钟前",
                            "userAvatar": "http://static.sporttery.cn/images/130517/18-13051G32G3-52.jpg",
                            "userName": "菠萝也结衣3",
                            "userUrl": "http://www.jd.com/",
                            "typeDescription": "# 摘抄",
                            "comment": "在我的想象中，GR2的对焦系统如果能达到A6000的水平，加个五轴防抖，加个翻转屏，简直是完美的，然而，这一次GR2的升级却选择了挤牙膏，这让人无比的绝望，与其花费五千多元买一个与自己拥有的相机无异的“新”相机，不如顺势趁着老α7降价的大气候，体验全幅吧。",
                            "prodPicUrl": "http://ecx.images-amazon.com/images/I/81aFIfmjHUL._SL1500_.jpg",
                            "prodTitle": "Motorola Moto 360 - Black Leather Smart Watch",
                            "prodUrl": "http://www.bejson.com/",
                            "interactive": "324次互动",
                            "participate": "53人参与"
                        }
                    ]
                }
            };

            callBack && callBack(data);
            */
            ////////////////////////////以上是前端测试效果用////////////////////////////

        }

    };

    window.waterFallServers = waterFallServers;

})( jQuery );